# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from method import *
import threading,time
# write_yaml(r"D:\python\pythonProject\test\add_employee_requests.yaml",data1)

# write_yaml(r"D:\python\pythonProject\test\add_employee_requests.yaml",data_uat1)
def login():
    url = read_yaml(0, '登录')['url']
    headers = read_yaml(0, '登录')['headers']
    data = read_yaml(0, '登录')['data']
    expect = read_yaml(0, '登录')['expect']
    ree = send_requests(0, '登录', url, data, headers)
    a1 = json.loads(ree.text)
    token = a1['data']['token']
    return token


def pendingPage():
    start_time = time.time()  # 记录开始时间
    url = read_yaml(11,'待处理页面')['url']
    headers = read_yaml(11,'待处理页面')['headers']
    headers['Authorization']=login()
    data = read_yaml(11,'待处理页面')['data']
    expect = read_yaml(11,'待处理页面')['expect']
    ree = send_requests(11, '待处理页面', url, data, headers)
    a1 = json.loads(ree.text)
    list_all = a1['data']['records']
    list1 = []
    list2 = []
    list3 = []
    for i in list_all:
        list1.append(i['auditConfigName'])
        list2.append(i['applyName'])
        if i['clientName'] is not None:
            list3.append(i['clientName'])

    original_list = list(set(list3))
    # 新列表，用于存放分割后的去重元素
    unique_list = []
    # 遍历原始列表
    for item in original_list:
        # 检查元素是否为字符串并且包含逗号
        if isinstance(item, str) and ',' in item:
            # 直接打印出来机构
            print(item)
            # 分割字符串，并将分割后的元素添加到新列表中
            sub_list = item.split(',')
            # 去重，将分割后的列表转换为集合，再转回列表
            unique_list.extend(set(sub_list))
        else:
            # 如果不包含逗号，直接添加到新列表
            unique_list.append(item)

    # 去重后的新列表
    unique_list = list(set(unique_list))

    print("待处理页面流程名称有" + str(len(set(list1))) + '个 ：' + str(set(list1)))
    print("待处理页面流程发起人有" + str(len(set(list2))) + '个 ：' + str(set(list2)))
    print("待处理页面机构简称有" + str(len(unique_list)) + '个 ：' + str(unique_list))
    end_time = time.time()  # 记录结束时间
    run_time = end_time - start_time  # 计算运行时间（单位为秒）
    print("脚本运行时间：", round(run_time, 2), '秒')

def processedpage():
    start_time = time.time()  # 记录开始时间
    url = read_yaml(12,'已处理页面')['url']
    headers = read_yaml(12,'已处理页面')['headers']
    headers['Authorization']=login()
    data = read_yaml(12,'已处理页面')['data']
    expect = read_yaml(12,'已处理页面')['expect']
    ree = send_requests(12, '已处理页面', url, data, headers)
    a1 = json.loads(ree.text)
    list_all = a1['data']['records']
    list1 = []
    list2 = []
    list3 = []
    for i in list_all:
        list1.append(i['auditConfigName'])
        list2.append(i['applyName'])
        if i['clientName'] is not None:
            list3.append(i['clientName'])

    original_list = list(set(list3))
    # 新列表，用于存放分割后的去重元素
    unique_list = []
    # 遍历原始列表
    for item in original_list:
        # 检查元素是否为字符串并且包含逗号
        if isinstance(item, str) and ',' in item:
            # 直接打印出来机构
            print(item)
            # 分割字符串，并将分割后的元素添加到新列表中
            sub_list = item.split(',')
            # 去重，将分割后的列表转换为集合，再转回列表
            unique_list.extend(set(sub_list))
        else:
            # 如果不包含逗号，直接添加到新列表
            unique_list.append(item)

    # 去重后的新列表
    unique_list = list(set(unique_list))

    print("已处理页面流程名称有" + str(len(set(list1))) + '个 ：' + str(set(list1)))
    print("已处理页面流程发起人有" + str(len(set(list2))) + '个 ：' + str(set(list2)))
    print("已处理页面机构简称有" + str(len(unique_list)) + '个 ：' + str(unique_list))
    end_time = time.time()  # 记录结束时间
    run_time = end_time - start_time  # 计算运行时间（单位为秒）
    print("脚本运行时间：", round(run_time, 2), '秒')


def ccmypage():
    start_time = time.time()  # 记录开始时间
    url = read_yaml(13, '抄送我页面')['url']
    headers = read_yaml(13, '抄送我页面')['headers']
    headers['Authorization'] = login()
    data = read_yaml(13, '抄送我页面')['data']
    expect = read_yaml(13, '抄送我页面')['expect']
    ree = send_requests(13, '抄送我页面', url, data, headers)
    a1 = json.loads(ree.text)
    list_all = a1['data']['records']
    list1 = []
    list2 = []
    list3 = []
    for i in list_all:
        list1.append(i['auditConfigName'])
        list2.append(i['applyName'])
        if i['clientName'] is not None:
            list3.append(i['clientName'])

    original_list = list(set(list3))
    # 新列表，用于存放分割后的去重元素
    unique_list = []
    # 遍历原始列表
    for item in original_list:
        # 检查元素是否为字符串并且包含逗号
        if isinstance(item, str) and ',' in item:
            # 直接打印出来机构
            print(item)
            # 分割字符串，并将分割后的元素添加到新列表中
            sub_list = item.split(',')
            # 去重，将分割后的列表转换为集合，再转回列表
            unique_list.extend(set(sub_list))
        else:
            # 如果不包含逗号，直接添加到新列表
            unique_list.append(item)

    # 去重后的新列表
    unique_list = list(set(unique_list))

    print("抄送我页面流程名称有" + str(len(set(list1))) + '个 ：' + str(set(list1)))
    print("抄送我页面流程发起人有" + str(len(set(list2))) + '个 ：' + str(set(list2)))
    print("抄送我页面机构简称有" + str(len(unique_list)) + '个 ：' + str(unique_list))
    end_time = time.time()  # 记录结束时间
    run_time = end_time - start_time  # 计算运行时间（单位为秒）
    print("脚本运行时间：", round(run_time, 2), '秒')


def pageinitiated():
    start_time = time.time()  # 记录开始时间
    url = read_yaml(14, '已发起页面')['url']
    headers = read_yaml(14, '已发起页面')['headers']
    headers['Authorization'] = login()
    data = read_yaml(14, '已发起页面')['data']
    expect = read_yaml(14, '已发起页面')['expect']
    ree = send_requests(14, '已发起页面', url, data, headers)
    a1 = json.loads(ree.text)
    list_all = a1['data']['records']
    list1 = []
    list2 = []
    list3 = []
    for i in list_all:
        list1.append(i['auditConfigName'])
        list2.append(i['applyName'])
        if i['clientName'] is not None:
            list3.append(i['clientName'])

    original_list = list(set(list3))
    # 新列表，用于存放分割后的去重元素
    unique_list = []
    # 遍历原始列表
    for item in original_list:
        # 检查元素是否为字符串并且包含逗号
        if isinstance(item, str) and ',' in item:
            # 直接打印出来机构
            print(item)
            # 分割字符串，并将分割后的元素添加到新列表中
            sub_list = item.split(',')
            # 去重，将分割后的列表转换为集合，再转回列表
            unique_list.extend(set(sub_list))
        else:
            # 如果不包含逗号，直接添加到新列表
            unique_list.append(item)

    # 去重后的新列表
    unique_list = list(set(unique_list))

    print("已发起页面流程名称有" + str(len(set(list1))) + '个 ：' + str(set(list1)))
    print("已发起页面流程发起人有" + str(len(set(list2))) + '个 ：' + str(set(list2)))
    print("已发起页面机构简称有" + str(len(unique_list)) + '个 ：' + str(unique_list))
    end_time = time.time()  # 记录结束时间
    run_time = end_time - start_time  # 计算运行时间（单位为秒）
    print("脚本运行时间：", round(run_time, 2), '秒')


def allpages():
    start_time = time.time()  # 记录开始时间
    url = read_yaml(15, '全部流程页面')['url']
    headers = read_yaml(15, '全部流程页面')['headers']
    headers['Authorization'] = login()
    data = read_yaml(15, '全部流程页面')['data']
    expect = read_yaml(15, '全部流程页面')['expect']
    ree = send_requests(15, '全部流程页面', url, data, headers)
    a1 = json.loads(ree.text)
    list_all = a1['data']['records']
    list1 = []
    list2 = []
    list3 = []
    for i in list_all:
        list1.append(i['auditConfigName'])
        list2.append(i['applyName'])
        if i['clientName'] is not None:
            list3.append(i['clientName'])

    original_list = list(set(list3))
    # 新列表，用于存放分割后的去重元素
    unique_list = []
    # 遍历原始列表
    for item in original_list:
        # 检查元素是否为字符串并且包含逗号
        if isinstance(item, str) and ',' in item:
            #直接打印出来机构
            print(item)
            # 分割字符串，并将分割后的元素添加到新列表中
            sub_list = item.split(',')
            # 去重，将分割后的列表转换为集合，再转回列表
            unique_list.extend(set(sub_list))
        else:
            # 如果不包含逗号，直接添加到新列表
            unique_list.append(item)

    # 去重后的新列表
    unique_list = list(set(unique_list))
    print(unique_list)

    url = "https://test.derkee.com/new/oa_audit/audit/getDropDown"

    payload = json.dumps({})
    headers = {
        'Authorization': '01HZH39581DECNBMBZZG392VH8',
        'Content-Type': 'application/json'
    }

    response = requests.request("POST", url, headers=headers, data=payload)
    a2 = json.loads(response.text)
    # print(a2['data']['examineContractName'])
    a3=a2['data']['examineContractName']
    list6=[]
    for i in a3:
        list6.append(i['label'])
    print(list6)
    print(len(list6))


    # 将列表转换为集合
    set1 = set(unique_list)
    set2 = set(list6)

    # 找出在list1中但不在list2中的元素
    unique_to_list1 = set1.difference(set2)
    # 找出在list2中但不在list1中的元素
    unique_to_list2 = set2.difference(set1)

    # 将结果转换回列表（如果需要）
    unique_to_list1_list = list(unique_to_list1)
    unique_to_list2_list = list(unique_to_list2)

    # 输出结果
    print("Elements unique to list1:", unique_to_list1_list)
    print("Elements unique to list2:", unique_to_list2_list)

    print("全部流程页面流程名称有" + str(len(set(list1))) + '个 ：' + str(set(list1)))
    print("全部流程页面流程发起人有" + str(len(set(list2))) + '个 ：' + str(set(list2)))
    print("全部流程页面机构简称有" + str(len(unique_list)) + '个 ：' + str(unique_list))
    end_time = time.time()  # 记录结束时间
    run_time = end_time - start_time  # 计算运行时间（单位为秒）
    print("脚本运行时间：", round(run_time, 2), '秒')


# 创建线程对象
# thread1 = threading.Thread(target=pendingPage)
# thread2 = threading.Thread(target=processedpage)
# thread3 = threading.Thread(target=ccmypage)
# thread4 = threading.Thread(target=pageinitiated)
thread5 = threading.Thread(target=allpages)

#启动线程
# thread1.start()
# thread2.start()
# thread3.start()
# thread4.start()
thread5.start()
# 等待线程执行完成
# thread1.join()
# thread2.join()
# thread3.join()
# thread4.join()
thread5.join()

print("All threads have finished executing")

